This invention relates to synchronization of various databases in a network. More particularly, the invention relates to synchronization of replicated data across heterogeneous databases in a communication network.
Many types of databases are known. There are relational model database, hierarchical model database, network model database, and many other database models. Among the available database models, the relational model is the most popular model.
In the relational database model, the database is divided into two areas--physical model and logical model where the physical model is based on each entity and the logical model is based on entity relationship. The physical and logical models are then used to generate a physical structure of a relational model database.
The hierarchical model has data structured in a parent-child relationship where the data of the child can be accessed only through the parent. Thus, in hierarchical database, the access to a child entity dependent on a parent entity can be only accessed if the key leading to the parent entity is available. In contrast, in the relational model, the data of any entity can be accessed as long as there is an appropriate key leading to such database.
For example, one way to access the relational database is a well-known definer query language called Structural Query Language ("SQL" or Sequel). But for the hierarchical database, since there is no relationship to connect the entities, it requires a very specific function call to access each entity by giving the segment key or by giving some other type of identifier to access the parent of the entity. Once the parent is accessed, the child segment can be searched or a segment number can be directly called on for locating the entity. If the entity is still in another child segment, the searching continues down to the deeper level until the entity is located.
The network model is similar to the relational model. The entities are all related where the relationship between the segments is called owner and membership. The owner owns many members and each member could be the owner of other members.
Other database models include proprietary database models and object-oriented database models. The proprietary database model can be of any construction that is suited to the use of a particular software vendor. Thus, the proprietary model may have any of combined features derived relational, hierarchical and network models or may have a totally different structure from any of the traditional database models.
Since significant amount of replicated information is resident among the network elements, operation systems, billing and support systems, it is important that the replicated copies of primary data are synchronized with the primary data. However, keeping consistent replicated information becomes more difficult where network elements can be any type of the database models discussed above such as the relational model, hierarchical model or network model.
In the telecommunication industry, a standard interface called Open Database Connectivity ("ODBC") is used for communication among different types of platforms such as IBM mainframes and Unix workstations. However, ODBC is not useful if the databases of these different platforms are different type. For example, when the primary database is relational and the subscribing databases are hierarchical, the updated data in the primary database may not be propagated because the primary database uses Structural Query Language ("SQL") while the subscribing databases do not recognize SQL.
The data inconsistency among these database models, if occurs, not only causes a significant revenue loss from a business standpoint, but also requires extremely high cost manual data synchronization. Further, the manual data synchronization involving human service may cause more data inconsistency problems.
Currently available systems for updating subscribing databases are designed for homogenous databases. The current systems also use the protocol called "two-phase commit." The two-phase commit means that the updating of subscribing databases occur only when all of the subscribing databases can be updated. Although this type of system provides that all subscribing databases at all times contain same information, the database updates may not be propagated to the databases that need the updates due to the failed acknowledgment from the databases that do not need the updates. Also, if a single subscribing database fails to acknowledge an update availability, it prevents all the rest of the subscribing databases from receiving the database updates.
It is therefore an object of this invention to provide an efficient system and method that accurately and promptly synchronizes heterogeneous databases in a network.
It is also an object of this invention to provide a system and method that correctly propagates the updates in the primary data only to subscribing databases that need the updates.